# 带着二哈去旅行丶:ZZQ
# 生成时间：2021/8/3 17:52
'''
文件类型：
    文本文件：
 r只读打开文件，文件指针将会放在文件的开头
 w只写模式打开文件，如果文件不存在则创建，存在则覆盖原有内容，文件指针在文件的开头
 a追加模式打开文件，文件不存在则创建，文件指针在开头，如果文件存在则在文件末尾追加内容，指针在末尾
    二进制文件：
 b以二进制方式打开文件，不能单独使用，需要与其他模式一起使用，rb或wb
 +以读写方式打开，不能单独使用，需要一起使用a+
'''
print('\n1-------------文件读写操作')

# 内置函数open()创建文件对象
# 语法规则

# file=open('T.txt','r')         # 读取文件
# print(file.readlines())
# file.close()                   # 关闭文件
'''
file = open('T.txt1','w')
file.write('Python')
file.close()
file = open('T.txt1','a')
file.write('Python')
file.close()
file = open('T.txt1','r')
print(file.readlines())
file.close()
'''
'''
file=open('T.txt','w')           # 写文件
file.write('Python')
file.close()

file=open('T.txt','a')           # 追加写入文件
file.write('Python')
file.close()
'''

# 二进制读写
'''
s_file=open('logo.png','rb')    # 二进制读文件-python
t_file=open('copylogo.png','wb')    # 二进制写入文件
t_file.write(s_file.read())
t_file.close()
s_file.close()
'''
# with语句上下文管理器
'''
class MyContentMgr(object):
    def __enter__(self):                            # 文件上文打开操作
        print('enter方法被调用了')
        return self
    def __exit__(self, exc_type, exc_val, exc_tb):  # 文件下文关闭操作
        print('exit方法被调用了')

    def show(self):
        print('show被调用了')

with MyContentMgr() as file:    # 上下文管理器 相当于file=MyContentMgr
    file.show()
'''

# 文件复制操作，不用手动关闭
#
# with open('a.txt','r') as s1:
#     with open('copy.txt','w') as s2:
#         s2.write(s1.read())

# os目录操作
# import os
# os.system('notepad.exe')
# # 可直接调用可执行文件
# os.startfile('文件目录  转义字符双斜线')

# import os.path
# print(os.path.abspath('03-文件.py'))

print('\n2--------获取指定目录下所有py文件')
'''
import os
path=os.getcwd()       # 获取当前工作目录
print(path)            
lst=os.listdir(path)   # 获取指定路径下的文件和目录信息
for filename in lst:
    if filename.endswith('.py'):  # 以.py结尾
        print(filename)
'''
print('\n3-------------walk()子目录也能获取')
'''
import os
path=os.getcwd()
lst_files=os.walk(path)  # 遍历当前文件下的所有目录
# print(lst_files)
for dirpath,dirname,filename in lst_files:
    # print(dirpath)      # 获取当前工作目录
    # print(dirname)      # 从一个路径中提取文件路径
    # print(filename)     # 文件名
    # print('---------------')
    for dir in dirname:
        print(os.path.join(dirpath,dir))    # 把文件名与路径链接
    for file in filename:
        print(os.path.join(dirpath,file))
    print('----------------')
'''
'''
import json
print('文件的读取---------json.dump/json.load')
filename='number.json'
numbers=[1,2,3,4,5]
with open(filename,'w',encoding='utf-8')as wfile:
    json.dump(numbers,wfile)        # 写入文件

with open(filename,'r')as rfile:
    numbers =json.load(rfile)
print(numbers)                      # 读取文件
'''